package com.peas.platform.module.icims.expenditure.setting.controller.vo;

import com.peas.platform.common.core.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("报账费用类型附件")
public class ExpenditureFeetypeFileVo extends BaseVo {

    @ApiModelProperty(value = "报账单费用类型", notes = "枚举取值:ExpenditureReimbursementFeetype")
    @NotBlank(message = "报账单费用类型不能为空")
    @Size(max = 20, message = "报账单费用类型不能超过20个字符")
    private String expenditureFeetype;

    // 1:办公费、2:其他
    @ApiModelProperty(value = "业务环节", notes = "枚举取值:ExpenditureFeetypeFileStage")
    @NotBlank(message = "业务环节不能为空")
    @Size(max = 20, message = "业务环节不能超过20个字符")
    private String stage;

    // 1:必须提供、2:满足时必须提供、3:发生时提供
    @ApiModelProperty(value = "控制级别", notes = "枚举取值:ExpenditureFeetypeFileControl")
    @NotBlank(message = "控制级别不能为空")
    @Size(max = 20, message = "控制级别不能超过20个字符")
    private String control;

    @ApiModelProperty(value = "排序权重", notes = "")
    @NotNull(message = "排序权重不能为空")
    private Integer weight;

    @ApiModelProperty(value = "附件名称", notes = "")
    @NotBlank(message = "附件名称不能为空")
    @Size(max = 200, message = "附件名称不能超过200个字符")
    private String filename;

    @ApiModelProperty(value = "备注", notes = "")
    @Size(max = 500, message = "备注不能超过500个字符")
    private String remark;

    // 1:是、0:否
    @ApiModelProperty(value = "是否发票附件", notes = "枚举取值:CommonYesNo")
    @Size(max = 200, message = "是否发票附件不能超过200个字符")
    private String needInvoice;

}
